
package ch.hearc.coursJava.moo.garage;

import java.util.Arrays;



public class Voiture
	{

	/*------------------------------------------------------------------*\
	|*							Constructeurs							*|
	\*------------------------------------------------------------------*/

	public Voiture(Roues[] tabRoues, String marque)
		{
		this.tabRoues = tabRoues;
		this.marque = marque;
		}

	public Voiture(Voiture source)
		{
		this(clone(source.tabRoues), source.marque);
		}

	/*------------------------------------------------------------------*\
	|*							Methodes Public							*|
	\*------------------------------------------------------------------*/

	public boolean isEgal(Voiture voiture2)
		{
		if (!this.marque.equals(voiture2.marque))
			{
			return false;
			}
		else
			{
			int i = 1;

			for(Roues rouesi : this.tabRoues)
				{
				if (!rouesi.isEgal(voiture2.tabRoues[i-1]))
					{
					return false;
					}
				i++;
				}

			return true;
			}
		}

	public Voiture cloneOf()
		{
		return new Voiture(this);
		}

	@Override
	public String toString()
		{
		StringBuilder builder = new StringBuilder();
		builder.append("Voiture [tabRoues=");
		builder.append(Arrays.toString(this.tabRoues));
		builder.append(", marque=");
		builder.append(this.marque);
		builder.append("]");
		return builder.toString();
		}

	/*------------------------------*\
	|*				Set				*|
	\*------------------------------*/

	public void setTabRoues(Roues[] tabRoues)
		{
		this.tabRoues = tabRoues;
		}

	public void setMarque(String marque)
		{
		this.marque = marque;
		}

	/*------------------------------*\
	|*				Get				*|
	\*------------------------------*/

	public Roues[] getTabRoues()
		{
		return this.tabRoues;
		}

	public String getMarque()
		{
		return this.marque;
		}

	/*------------------------------------------------------------------*\
	|*							Methodes Private						*|
	\*------------------------------------------------------------------*/

	/*------------------------------*\
	|*			  Static			*|
	\*------------------------------*/
	//DANS LE TE!!!!! AHAHHAH
	private static Roues[] clone(Roues[] tabRoues)
		{
		Roues[] tabRouesCopy = new Roues[tabRoues.length];

		int i = 1;
		for(Roues rouesi : tabRoues)
			{
			tabRouesCopy[i-1] = rouesi.cloneOf();
			i++;
			}

		return tabRouesCopy;
		}

	/*------------------------------------------------------------------*\
	|*							Attributs Private						*|
	\*------------------------------------------------------------------*/

	// Input / output
	private Roues[] tabRoues;
	private String marque;

	}

